# Figure S14A-E

import scanpy as sc
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

adataMouseBrainSubset = sc.read_h5ad("./adataMouseBrainSubset.h5ad")

var_names=["Shh", "Ptch1", "Ptch2", "Wnt8b", "Foxa2", "Otx1", "Otx2", "Dbx1", "Dbx2", "Barhl1", "Barhl2", "Dlx1", "Pax6", "Sspo"]

classes = sorted(adataMouseBrainSubset.obs['Subclass'].unique())

n_cols = 3
n_rows = (len(classes) + n_cols - 1) // n_cols

fig, axes = plt.subplots(n_rows, n_cols, figsize=(6 * n_cols, 4 * n_rows))
axes = axes.flatten()

for idx, cls in enumerate(classes):
    subset = adataMouseBrainSubset[adataMouseBrainSubset.obs["Subclass"] == cls]
    
    sc.pl.dotplot(
        subset,
        var_names=var_names,
        groupby="Age",  
        ax=axes[idx],
        show=False,
        color_map='Blues',   
        dot_max=1,
        dot_min=0.05,
        swap_axes=True,
        title=f'Class: {cls}' 
    )

for j in range(idx + 1, len(axes)):
    fig.delaxes(axes[j])

plt.tight_layout()
plt.show()